extends Area2D

# 位置信息
var direction : Vector2
var speed : float = 100

@export var type : Pickups

@export var player_reference : CharacterBody2D:
	set(value):
		player_reference = value
		type.player_reference = value

# 是否跟随玩家
var can_follow : bool = false:
	set(value):
		can_follow = value
		if value:
			follow(player_reference)

func _ready() -> void:
	$pickup_show.texture = type.icon

func _physics_process(delta: float) -> void:
	if can_follow && player_reference:
		# 玩家位置 - 当前物品位置 然后执行标准化得到方向,方向是一个向量
		direction = (player_reference.position - position).normalized()
		# 位置 = 速度*帧/s*方向 每一帧都逐渐靠近玩家
		position += delta * speed * direction
		
# 碰撞检测通过时,设置为可以跟随状态
func follow(_target:CharacterBody2D)->void:
	can_follow = true
	
# 碰撞检测
func _on_follow_body_entered(_body: Node2D) -> void:
	type.activate()
	queue_free()
